﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Windows.Forms;
using TopologyWizzard;

namespace VPN_Emulator
{
    //! Klasa reprezentująca router
    public class Router
    {
        //! nazwa routera
        private String name;

        //! adres IP routera
        private String ipAddress;

        //! pozycja X na panelu topologii routera
        private int xPossition;

        //! pozycja Y na panelu topologii routera
        private int yPossition;

        //! obraz routera
        private PictureBox pictureBox;

        //! lista interfejsów routera
        private List<Interface> interfaces;

        //! lista testów routera
        private List<TestCase> testCaseList;

        //! Konstruktor
        public Router(String _name, String _ipAddress, int _xPossition, int _yPossition)
        {
            name = _name;
            ipAddress = _ipAddress;
            xPossition = _xPossition;
            yPossition = _yPossition;
            interfaces = new List<Interface>();
            testCaseList = new List<TestCase>();
        }

        //! Nazwa
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }

        //! Adres IP
        public string IPAddress
        {
            get
            {
                return ipAddress;
            }
            set
            {
                ipAddress = value;
            }
        }

        //! Pozycja X na panelu topologii
        public int XPossition
        {
            get
            {
                return xPossition;
            }
            set
            {
                xPossition = value;
            }
        }

        //! Pozycja Y na panelu topologii
        public int YPossition
        {
            get
            {
                return yPossition;
            }
            set
            {
                yPossition = value;
            }
        }

        //! Obraz
        public PictureBox PictureBox
        {
            get
            {
                return pictureBox;
            }
            set
            {
                pictureBox = value;
            }
        }

        //! Interfejsy
        public List<Interface> Interfaces
        {
            get
            {
                return interfaces;
            }
            set
            {
                interfaces = value;
            }
        }

        //! Testy
        public List<TestCase> TestCaseList
        {
            get
            {
                return testCaseList;
            }
            set
            {
                testCaseList = value;
            }
        }
    }
}
